<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/Python-3.6.2/Include/pymacro.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/Python-3.6.2/Include/pymacro.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="macros_noref.html#_UHlfUFlNQUNST19IXzA_"><span class="b">Py_PYMACRO_H</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfUFlNQUNST19IXzA_"><span class="b">Py_PYMACRO_H</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="True">       4:</span> <span class="k">/* Minimum value between x and y */</span>
<a name="5" /><span class="True">       5:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfTUlOXzA_"><span class="b">Py_MIN</span></a><span class="f">(</span><span class="b">x</span><span class="f">,</span> <span class="b">y</span><span class="f">)</span> <span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">&gt;</span> <span class="f">(</span><span class="b">y</span><span class="f">)</span><span class="f">)</span> <span class="f">?</span> <span class="f">(</span><span class="b">y</span><span class="f">)</span> <span class="f">:</span> <span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">)</span>
<a name="6" /><span class="True">       6:</span> 
<a name="7" /><span class="True">       7:</span> <span class="k">/* Maximum value between x and y */</span>
<a name="8" /><span class="True">       8:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfTUFYXzA_"><span class="b">Py_MAX</span></a><span class="f">(</span><span class="b">x</span><span class="f">,</span> <span class="b">y</span><span class="f">)</span> <span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">&gt;</span> <span class="f">(</span><span class="b">y</span><span class="f">)</span><span class="f">)</span> <span class="f">?</span> <span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">:</span> <span class="f">(</span><span class="b">y</span><span class="f">)</span><span class="f">)</span>
<a name="9" /><span class="True">       9:</span> 
<a name="10" /><span class="True">      10:</span> <span class="k">/* Absolute value of the number x */</span>
<a name="11" /><span class="True">      11:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfQUJTXzA_"><span class="b">Py_ABS</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">&lt;</span> <span class="c">0</span> <span class="f">?</span> <span class="f">-</span><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">:</span> <span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">)</span>
<a name="12" /><span class="True">      12:</span> 
<a name="13" /><span class="True">      13:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_X1B5X1hTVFJJTkdJRllfMA__"><span class="b">_Py_XSTRINGIFY</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">#</span><span class="b">x</span>
<a name="14" /><span class="True">      14:</span> 
<a name="15" /><span class="True">      15:</span> <span class="k">/* Convert the argument to a string. For example, Py_STRINGIFY(123) is replaced</span>
<a name="16" /><span class="True">      16:</span> <span class="k">   with &quot;123&quot; by the preprocessor. Defines are also replaced by their value.</span>
<a name="17" /><span class="True">      17:</span> <span class="k">   For example Py_STRINGIFY(__LINE__) is replaced by the line number, not</span>
<a name="18" /><span class="True">      18:</span> <span class="k">   by &quot;__LINE__&quot;. */</span>
<a name="19" /><span class="True">      19:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfU1RSSU5HSUZZXzA_"><span class="b">Py_STRINGIFY</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="macros_noref.html#_X1B5X1hTVFJJTkdJRllfMA__"><span class="b">_Py_XSTRINGIFY</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>
<a name="20" /><span class="True">      20:</span> 
<a name="21" /><span class="True">      21:</span> <span class="k">/* Get the size of a structure member in bytes */</span>
<a name="22" /><span class="True">      22:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_UHlfTUVNQkVSX1NJWkVfMA__"><span class="b">Py_MEMBER_SIZE</span></a><span class="f">(</span><span class="b">type</span><span class="f">,</span> <span class="b">member</span><span class="f">)</span> <span class="m">sizeof</span><span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">type</span> <span class="f">*</span><span class="f">)</span><span class="c">0</span><span class="f">)</span><span class="f">-&gt;</span><span class="b">member</span><span class="f">)</span>
<a name="23" /><span class="True">      23:</span> 
<a name="24" /><span class="True">      24:</span> <span class="k">/* Argument must be a char or an int in [-128, 127] or [0, 255]. */</span>
<a name="25" /><span class="True">      25:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfQ0hBUk1BU0tfMA__"><span class="b">Py_CHARMASK</span></a><span class="f">(</span><span class="b">c</span><span class="f">)</span> <span class="f">(</span><span class="f">(</span><span class="m">unsigned</span> <span class="m">char</span><span class="f">)</span><span class="f">(</span><span class="f">(</span><span class="b">c</span><span class="f">)</span> <span class="f">&amp;</span> <span class="c">0xff</span><span class="f">)</span><span class="f">)</span>
<a name="26" /><span class="True">      26:</span> 
<a name="27" /><span class="True">      27:</span> <span class="k">/* Assert a build-time dependency, as an expression.</span>
<a name="28" /><span class="True">      28:</span> <span class="k"></span>
<a name="29" /><span class="True">      29:</span> <span class="k">   Your compile will fail if the condition isn&apos;t true, or can&apos;t be evaluated</span>
<a name="30" /><span class="True">      30:</span> <span class="k">   by the compiler. This can be used in an expression: its value is 0.</span>
<a name="31" /><span class="True">      31:</span> <span class="k"></span>
<a name="32" /><span class="True">      32:</span> <span class="k">   Example:</span>
<a name="33" /><span class="True">      33:</span> <span class="k"></span>
<a name="34" /><span class="True">      34:</span> <span class="k">   #define foo_to_char(foo)  \</span>
<a name="35" /><span class="True">      35:</span> <span class="k">       ((char *)(foo)        \</span>
<a name="36" /><span class="True">      36:</span> <span class="k">        + Py_BUILD_ASSERT_EXPR(offsetof(struct foo, string) == 0))</span>
<a name="37" /><span class="True">      37:</span> <span class="k"></span>
<a name="38" /><span class="True">      38:</span> <span class="k">   Written by Rusty Russell, public domain, http://ccodearchive.net/ */</span>
<a name="39" /><span class="True">      39:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfQlVJTERfQVNTRVJUX0VYUFJfMA__"><span class="b">Py_BUILD_ASSERT_EXPR</span></a><span class="f">(</span><span class="b">cond</span><span class="f">)</span> \
<a name="40" /><span class="True">      40:</span>     <span class="f">(</span><span class="m">sizeof</span><span class="f">(</span><span class="m">char</span> <span class="f">[</span><span class="c">1</span> <span class="f">-</span> <span class="c">2</span><span class="f">*</span><span class="f">!</span><span class="f">(</span><span class="b">cond</span><span class="f">)</span><span class="f">]</span><span class="f">)</span> <span class="f">-</span> <span class="c">1</span><span class="f">)</span>
<a name="41" /><span class="True">      41:</span> 
<a name="42" /><span class="True">      42:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfQlVJTERfQVNTRVJUXzA_"><span class="b">Py_BUILD_ASSERT</span></a><span class="f">(</span><span class="b">cond</span><span class="f">)</span>  <span class="m">do</span> <span class="f">{</span>         \
<a name="43" /><span class="True">      43:</span>         <span class="f">(</span><span class="m">void</span><span class="f">)</span><a href="macros_noref.html#_UHlfQlVJTERfQVNTRVJUX0VYUFJfMA__"><span class="b">Py_BUILD_ASSERT_EXPR</span></a><span class="f">(</span><span class="b">cond</span><span class="f">)</span><span class="f">;</span>   \
<a name="44" /><span class="True">      44:</span>     <span class="f">}</span> <span class="m">while</span><span class="f">(</span><span class="c">0</span><span class="f">)</span>
<a name="45" /><span class="True">      45:</span> 
<a name="46" /><span class="True">      46:</span> <span class="k">/* Get the number of elements in a visible array</span>
<a name="47" /><span class="True">      47:</span> <span class="k"></span>
<a name="48" /><span class="True">      48:</span> <span class="k">   This does not work on pointers, or arrays declared as [], or function</span>
<a name="49" /><span class="True">      49:</span> <span class="k">   parameters. With correct compiler support, such usage will cause a build</span>
<a name="50" /><span class="True">      50:</span> <span class="k">   error (see Py_BUILD_ASSERT_EXPR).</span>
<a name="51" /><span class="True">      51:</span> <span class="k"></span>
<a name="52" /><span class="True">      52:</span> <span class="k">   Written by Rusty Russell, public domain, http://ccodearchive.net/</span>
<a name="53" /><span class="True">      53:</span> <span class="k"></span>
<a name="54" /><span class="True">      54:</span> <span class="k">   Requires at GCC 3.1+ */</span>
<a name="55" /><span class="True">      55:</span> <span class="f">#</span><span class="n">if</span> <span class="f">(</span><span class="b">defined</span><span class="f">(</span><a href="macros_ref.html#_X19HTlVDX19fMA__"><span class="b">__GNUC__</span></a><span class="f">)</span> <span class="f">&amp;&amp;</span> <span class="f">!</span><span class="b">defined</span><span class="f">(</span><span class="b">__STRICT_ANSI__</span><span class="f">)</span> <span class="f">&amp;&amp;</span> \
<a name="56" /><span class="True">      56:</span>     <span class="f">(</span><span class="f">(</span><span class="f">(</span><a href="macros_ref.html#_X19HTlVDX19fMA__"><span class="b">__GNUC__</span></a> <span class="f">==</span> <span class="c">3</span><span class="f">)</span> <span class="f">&amp;&amp;</span> <span class="f">(</span><span class="b">__GNU_MINOR__</span> <span class="f">&gt;=</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span> <span class="f">||</span> <span class="f">(</span><a href="macros_ref.html#_X19HTlVDX19fMA__"><span class="b">__GNUC__</span></a> <span class="f">&gt;=</span> <span class="c">4</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="57" /><span class="True">      57:</span> <span class="k">/* Two gcc extensions.</span>
<a name="58" /><span class="True">      58:</span> <span class="k">   &amp;a[0] degrades to a pointer: a different type from an array */</span>
<a name="59" /><span class="True">      59:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfQVJSQVlfTEVOR1RIXzA_"><span class="b">Py_ARRAY_LENGTH</span></a><span class="f">(</span><span class="b">array</span><span class="f">)</span> \
<a name="60" /><span class="True">      60:</span>     <span class="f">(</span><span class="m">sizeof</span><span class="f">(</span><span class="b">array</span><span class="f">)</span> <span class="f">/</span> <span class="m">sizeof</span><span class="f">(</span><span class="f">(</span><span class="b">array</span><span class="f">)</span><span class="f">[</span><span class="c">0</span><span class="f">]</span><span class="f">)</span> \
<a name="61" /><span class="True">      61:</span>      <span class="f">+</span> <a href="macros_noref.html#_UHlfQlVJTERfQVNTRVJUX0VYUFJfMA__"><span class="b">Py_BUILD_ASSERT_EXPR</span></a><span class="f">(</span><span class="f">!</span><span class="b">__builtin_types_compatible_p</span><span class="f">(</span><span class="b">typeof</span><span class="f">(</span><span class="b">array</span><span class="f">)</span><span class="f">,</span> \
<a name="62" /><span class="True">      62:</span>                                                           <span class="b">typeof</span><span class="f">(</span><span class="f">&amp;</span><span class="f">(</span><span class="b">array</span><span class="f">)</span><span class="f">[</span><span class="c">0</span><span class="f">]</span><span class="f">)</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="63" /><span class="False">      63:</span> <span class="f">#</span><span class="n">else</span>
<a name="64" /><span class="False">      64:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfQVJSQVlfTEVOR1RIXzA_"><span class="b">Py_ARRAY_LENGTH</span></a><span class="f">(</span><span class="b">array</span><span class="f">)</span> \
<a name="65" /><span class="False">      65:</span>     <span class="f">(</span><span class="m">sizeof</span><span class="f">(</span><span class="b">array</span><span class="f">)</span> <span class="f">/</span> <span class="m">sizeof</span><span class="f">(</span><span class="f">(</span><span class="b">array</span><span class="f">)</span><span class="f">[</span><span class="c">0</span><span class="f">]</span><span class="f">)</span><span class="f">)</span>
<a name="66" /><span class="True">      66:</span> <span class="f">#</span><span class="n">endif</span>
<a name="67" /><span class="True">      67:</span> 
<a name="68" /><span class="True">      68:</span> 
<a name="69" /><span class="True">      69:</span> <span class="k">/* Define macros for inline documentation. */</span>
<a name="70" /><span class="True">      70:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_UHlEb2NfVkFSXzA_"><span class="b">PyDoc_VAR</span></a><span class="f">(</span><span class="b">name</span><span class="f">)</span> <span class="m">static</span> <span class="m">char</span> <span class="b">name</span><span class="f">[</span><span class="f">]</span>
<a name="71" /><span class="True">      71:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_UHlEb2NfU1RSVkFSXzA_"><span class="b">PyDoc_STRVAR</span></a><span class="f">(</span><span class="b">name</span><span class="f">,</span><span class="b">str</span><span class="f">)</span> <a href="macros_ref.html#_UHlEb2NfVkFSXzA_"><span class="b">PyDoc_VAR</span></a><span class="f">(</span><span class="b">name</span><span class="f">)</span> <span class="f">=</span> <a href="macros_ref.html#_UHlEb2NfU1RSXzA_"><span class="b">PyDoc_STR</span></a><span class="f">(</span><span class="b">str</span><span class="f">)</span>
<a name="72" /><span class="True">      72:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="macros_ref.html#_V0lUSF9ET0NfU1RSSU5HU18w"><span class="b">WITH_DOC_STRINGS</span></a>
<a name="73" /><span class="True">      73:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_UHlEb2NfU1RSXzA_"><span class="b">PyDoc_STR</span></a><span class="f">(</span><span class="b">str</span><span class="f">)</span> <span class="b">str</span>
<a name="74" /><span class="False">      74:</span> <span class="f">#</span><span class="n">else</span>
<a name="75" /><span class="False">      75:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_UHlEb2NfU1RSXzA_"><span class="b">PyDoc_STR</span></a><span class="f">(</span><span class="b">str</span><span class="f">)</span> <span class="e">&quot;&quot;</span>
<a name="76" /><span class="True">      76:</span> <span class="f">#</span><span class="n">endif</span>
<a name="77" /><span class="True">      77:</span> 
<a name="78" /><span class="True">      78:</span> <span class="k">/* Below &quot;a&quot; is a power of 2. */</span>
<a name="79" /><span class="True">      79:</span> <span class="k">/* Round down size &quot;n&quot; to be a multiple of &quot;a&quot;. */</span>
<a name="80" /><span class="True">      80:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_X1B5X1NJWkVfUk9VTkRfRE9XTl8w"><span class="b">_Py_SIZE_ROUND_DOWN</span></a><span class="f">(</span><span class="b">n</span><span class="f">,</span> <span class="b">a</span><span class="f">)</span> <span class="f">(</span><span class="f">(</span><span class="b">size_t</span><span class="f">)</span><span class="f">(</span><span class="b">n</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">~</span><span class="f">(</span><span class="b">size_t</span><span class="f">)</span><span class="f">(</span><span class="f">(</span><span class="b">a</span><span class="f">)</span> <span class="f">-</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span>
<a name="81" /><span class="True">      81:</span> <span class="k">/* Round up size &quot;n&quot; to be a multiple of &quot;a&quot;. */</span>
<a name="82" /><span class="True">      82:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_X1B5X1NJWkVfUk9VTkRfVVBfMA__"><span class="b">_Py_SIZE_ROUND_UP</span></a><span class="f">(</span><span class="b">n</span><span class="f">,</span> <span class="b">a</span><span class="f">)</span> <span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">size_t</span><span class="f">)</span><span class="f">(</span><span class="b">n</span><span class="f">)</span> <span class="f">+</span> \
<a name="83" /><span class="True">      83:</span>         <span class="f">(</span><span class="b">size_t</span><span class="f">)</span><span class="f">(</span><span class="f">(</span><span class="b">a</span><span class="f">)</span> <span class="f">-</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">~</span><span class="f">(</span><span class="b">size_t</span><span class="f">)</span><span class="f">(</span><span class="f">(</span><span class="b">a</span><span class="f">)</span> <span class="f">-</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span>
<a name="84" /><span class="True">      84:</span> <span class="k">/* Round pointer &quot;p&quot; down to the closest &quot;a&quot;-aligned address &lt;= &quot;p&quot;. */</span>
<a name="85" /><span class="True">      85:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_X1B5X0FMSUdOX0RPV05fMA__"><span class="b">_Py_ALIGN_DOWN</span></a><span class="f">(</span><span class="b">p</span><span class="f">,</span> <span class="b">a</span><span class="f">)</span> <span class="f">(</span><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="f">)</span><span class="f">(</span><span class="f">(</span><span class="b">uintptr_t</span><span class="f">)</span><span class="f">(</span><span class="b">p</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">~</span><span class="f">(</span><span class="b">uintptr_t</span><span class="f">)</span><span class="f">(</span><span class="f">(</span><span class="b">a</span><span class="f">)</span> <span class="f">-</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="86" /><span class="True">      86:</span> <span class="k">/* Round pointer &quot;p&quot; up to the closest &quot;a&quot;-aligned address &gt;= &quot;p&quot;. */</span>
<a name="87" /><span class="True">      87:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_X1B5X0FMSUdOX1VQXzA_"><span class="b">_Py_ALIGN_UP</span></a><span class="f">(</span><span class="b">p</span><span class="f">,</span> <span class="b">a</span><span class="f">)</span> <span class="f">(</span><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="f">)</span><span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">uintptr_t</span><span class="f">)</span><span class="f">(</span><span class="b">p</span><span class="f">)</span> <span class="f">+</span> \
<a name="88" /><span class="True">      88:</span>         <span class="f">(</span><span class="b">uintptr_t</span><span class="f">)</span><span class="f">(</span><span class="f">(</span><span class="b">a</span><span class="f">)</span> <span class="f">-</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">~</span><span class="f">(</span><span class="b">uintptr_t</span><span class="f">)</span><span class="f">(</span><span class="f">(</span><span class="b">a</span><span class="f">)</span> <span class="f">-</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="89" /><span class="True">      89:</span> <span class="k">/* Check if pointer &quot;p&quot; is aligned to &quot;a&quot;-bytes boundary. */</span>
<a name="90" /><span class="True">      90:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_X1B5X0lTX0FMSUdORURfMA__"><span class="b">_Py_IS_ALIGNED</span></a><span class="f">(</span><span class="b">p</span><span class="f">,</span> <span class="b">a</span><span class="f">)</span> <span class="f">(</span><span class="f">!</span><span class="f">(</span><span class="f">(</span><span class="b">uintptr_t</span><span class="f">)</span><span class="f">(</span><span class="b">p</span><span class="f">)</span> <span class="f">&amp;</span> <span class="f">(</span><span class="b">uintptr_t</span><span class="f">)</span><span class="f">(</span><span class="f">(</span><span class="b">a</span><span class="f">)</span> <span class="f">-</span> <span class="c">1</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="91" /><span class="True">      91:</span> 
<a name="92" /><span class="True">      92:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="macros_ref.html#_X19HTlVDX19fMA__"><span class="b">__GNUC__</span></a>
<a name="93" /><span class="True">      93:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfVU5VU0VEXzA_"><span class="b">Py_UNUSED</span></a><span class="f">(</span><span class="b">name</span><span class="f">)</span> <span class="b">_unused_</span> <span class="f">##</span> <span class="b">name</span> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">unused</span><span class="f">)</span><span class="f">)</span>
<a name="94" /><span class="False">      94:</span> <span class="f">#</span><span class="n">else</span>
<a name="95" /><span class="False">      95:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfVU5VU0VEXzA_"><span class="b">Py_UNUSED</span></a><span class="f">(</span><span class="b">name</span><span class="f">)</span> <span class="b">_unused_</span> <span class="f">##</span> <span class="b">name</span>
<a name="96" /><span class="True">      96:</span> <span class="f">#</span><span class="n">endif</span>
<a name="97" /><span class="True">      97:</span> 
<a name="98" /><span class="True">      98:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* Py_PYMACRO_H */</span>
<a name="99" /><span class="True">      99:</span> </pre>
  </body>
</html>
